package hr.ctg.domain.model;

// Generated 2007.05.02 22:50:59 by Hibernate Tools 3.2.0.b9

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.Immutable;
import org.hibernate.validator.NotNull;

/**
 * Kategorija generated by hbm2java
 */
@Entity
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
@Immutable
@Table(name = "kategorija")
@NamedQueries( {
		@NamedQuery(name = "Kategorija.findAll", query = "select k from Kategorija k"),
		@NamedQuery(name = "Kategorija.findByIdObjekta", query = "select k from Kategorija k join k.objekts o where o.idObjekta = ?") })
public class Kategorija implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -2208309295374200596L;
	private int idKategorije;
	private String autoritet;
	private int brojZvjezdica;
	private int maxZvjezdica;
	private Set<Objekt> objekts = new HashSet<Objekt>(0);

	public Kategorija() {
	}

	public Kategorija(final int idKategorije, final String autoritet,
			final int brojZvjezdica, final int maxZvjezdica) {
		this.idKategorije = idKategorije;
		this.autoritet = autoritet;
		this.brojZvjezdica = brojZvjezdica;
		this.maxZvjezdica = maxZvjezdica;
	}

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "id_kategorije", unique = true, nullable = false)
	@NotNull
	public int getIdKategorije() {
		return idKategorije;
	}

	public void setIdKategorije(final int idKategorije) {
		this.idKategorije = idKategorije;
	}

	@Column(name = "autoritet", nullable = false)
	@NotNull
	public String getAutoritet() {
		return autoritet;
	}

	public void setAutoritet(final String autoritet) {
		this.autoritet = autoritet;
	}

	@Column(name = "broj_zvjezdica", nullable = false)
	@NotNull
	public int getBrojZvjezdica() {
		return brojZvjezdica;
	}

	public void setBrojZvjezdica(final int brojZvjezdica) {
		this.brojZvjezdica = brojZvjezdica;
	}

	@Column(name = "max_zvjezdica", nullable = false)
	@NotNull
	public int getMaxZvjezdica() {
		return maxZvjezdica;
	}

	public void setMaxZvjezdica(final int maxZvjezdica) {
		this.maxZvjezdica = maxZvjezdica;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "kategorija")
	public Set<Objekt> getObjekts() {
		return objekts;
	}

	public void setObjekts(final Set<Objekt> objekts) {
		this.objekts = objekts;
	}
}
